home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
BF_SDK11.ZIP
/
ASM_DEMO.ASM
next >
Wrap
Assembly Source File
|
1996-05-21
|
2KB
|
76 lines
; ASM_DEMO.ASM
; Assembler Test- and Demoprogram of the Compatibility
; (c)1996 Cedric Reinartz
; Simple programm which encrypts testdata and compares them with the
; values provided by Bruce Schneier
nopub equ 1 ; we want to include BFENG386.ASM
useSmall equ 1 ; large model not needed
noLoop equ 0 ; we don't need much speed
rnds equ 1 ; 16 Rounds
include bfe_asm.inc
.data
key_0 dd 1058 dup(0)
; official Testvektors from DDJ 10/95...
PW_1 db "abcdefghijklmnopqrstuvwxyz"
data1_p dd 0424c4f57h, 046495348h
data1_c dd 0324ed0feh, 0f413a203h
len_PW_1 equ offset data1_p - offset pw_1
PW_2 db "Who is John Galt?"
data2_p dd 0fedcba98h, 076543210h
data2_c dd 0cc91732bh, 08022f684h
len_PW_2 equ offset data2_p - PW_2
noerror db 13,10,10,"Test completed successfully !",13,10,"$"
error db 13,10,10,"Test failed !",13,10,"$"
.code
start: _GetBoxPointer ; mov dx,seg key_0 would also do
mov ds,dx ; load the right Datasegment
_GetBoxes ds, <offset key_0> ; Save original Boxes
_InitCrypt ds,<offset PW_1>,len_PW_1 ; Set the first Password
_Encrypt ds,<offset data1_p>,8 ; Encrypt 8 Byte of Testdata
mov si,offset data1_p ; Compare with
call comp ; official values
jne ko ; Not equal -> Test Failed
_SetBoxes ds, <offset key_0> ; Restore original Boxes
_InitCrypt ds,<offset PW_2>,len_PW_2 ; Set the second Password
_Encrypt ds,<offset data2_p>,8 ; Encrypt 8 Byte of Testdata
mov si,offset data2_p ; Compare with
call comp ; official values
jne ko ; Not equal -> Test Failed
OK: mov dx,offset noerror ; Else: Test completed
jmp finish
KO: mov dx,offset error
finish: mov ax,0900h ; Show final message
int 21h
mov ax,4c00h ; Terminate programm
int 21h
comp: mov eax,[si] ; Compares two DWords
cmp eax,[si+8] ; with the following
jne c_end ; two DWords
mov eax,[si+4]
cmp eax,[si+12]
c_end: ret
end start